home *** CD-ROM | disk | FTP | other *** search
- /*
- Sample ICI script for NetFinder.
-
- This script dumps out TCP/UDP stats of the machine at the time of running.
-
- The purpose of this script is for technical support when things are not
- working... you can also use it for other purposes.
-
- NOTES:
- o Full ICI programming syntax can be obtained from
- <http://www.zeta.org.au/~atrn/ici/documentation.html>
-
- (c) Copyright 2000 Peter Li.
- */
-
- NFLoadModuleConstants();
-
- extern TCP_STATUS_REGEXP = $regexp("^[^ ]+ ([0-9\\.]+) .*\\[([A-Fa-f0-9]+),([A-Fa-f0-9]+)\\] ([^ ]+) +$");
- extern UDP_STATUS_REGEXP = $regexp("^[^ ]+ ([0-9]+) ([0-9\\.]+) ([0-9\\.]+) ([0-9\\.]+) ([0-9]+) ([^ ]+)$");
- auto outputFilename = "Raw_Status.dat";
-
-
- extern
- PortToEnglishStr(inPort)
- {
- auto result;
-
- result = string(inPort);
-
- switch(inPort)
- {
- case 0: result = "any"; break;
- case 1: result = "tcpmux"; break;
- case 7: result = "echo"; break;
- case 9: result = "discard"; break;
- case 11: result = "systat"; break;
- case 13: result = "daytime"; break;
- case 15: result = "netstat"; break;
- case 17: result = "qotd"; break;
- case 18: result = "msp"; break;
- case 19: result = "chargen"; break;
- case 20: result = "ftpdata"; break;
- case 21: result = "ftp"; break;
- case 22: result = "ssh"; break;
- case 23: result = "telnet"; break;
- case 25: result = "smtp"; break;
- case 37: result = "time"; break;
- case 39: result = "rlp"; break;
- case 42: result = "nameserver"; break;
- case 43: result = "whois"; break;
- case 50: result = "re-mail-ck"; break;
- case 53: result = "domain"; break;
- case 57: result = "mtp"; break;
- case 67: result = "bootps"; break;
- case 68: result = "bootpc"; break;
- case 69: result = "tftp"; break;
- case 70: result = "gopher"; break;
- case 77: result = "rje"; break;
- case 79: result = "finger"; break;
- case 80: result = "http"; break;
- case 87: result = "link"; break;
- case 88: result = "kerberos"; break;
- case 95: result = "supdup"; break;
- case 98: result = "linuxconf"; break;
- case 101: result = "hostnames"; break;
- case 102: result = "iso-tsap"; break;
- case 103: result = "x400"; break;
- case 104: result = "x400-snd"; break;
- case 105: result = "csnet-ns"; break;
- case 106: result = "poppassd"; break;
- case 107: result = "rtelnet"; break;
- case 109: result = "pop2"; break;
- case 110: result = "pop3"; break;
- case 111: result = "sunrpc"; break;
- case 113: result = "ident"; break;
- case 115: result = "sftp"; break;
- case 117: result = "uucp-path"; break;
- case 119: result = "nntp"; break;
- case 123: result = "ntp"; break;
- case 137: result = "netbios-ns"; break;
- case 138: result = "netbios-dgm"; break;
- case 139: result = "netbios-ssn"; break;
- case 143: result = "imap2"; break;
- case 144: result = "NeWS"; break;
- case 161: result = "snmp"; break;
- case 162: result = "snmp-trap"; break;
- case 163: result = "cmip-man"; break;
- case 164: result = "cmip-agent"; break;
- case 174: result = "mailq"; break;
- case 177: result = "xdmcp"; break;
- case 178: result = "nextstep"; break;
- case 179: result = "bgp"; break;
- case 191: result = "perspero"; break;
- case 194: result = "irc"; break;
- case 199: result = "smux"; break;
- case 201: result = "at-rtmp"; break;
- case 202: result = "at-nbp"; break;
- case 204: result = "at-echo"; break;
- case 206: result = "at-zis"; break;
- case 209: result = "qmtp"; break;
- case 210: result = "z3950"; break;
- case 213: result = "ipx"; break;
- case 220: result = "imap3"; break;
- case 311: result = "asip-webadmin";break;
- case 369: result = "rpc2portmap"; break;
- case 370: result = "codaauth2"; break;
- case 372: result = "ulistserv"; break;
- case 376: result = "nip"; break;
- case 389: result = "ldap"; break;
- case 427: result = "slp"; break;
- case 443: result = "https"; break;
- case 444: result = "snpp"; break;
- case 458: result = "appleqtc"; break;
- case 465: result = "ssmtp"; break;
- case 481: result = "ph"; break;
- case 487: result = "saft"; break;
- case 497: result = "retrospect"; break;
- case 500: result = "isakmp"; break;
- case 512: result = "exec/biff"; break;
- case 513: result = "login/who"; break;
- case 514: result = "shell/syslog";break;
- case 515: result = "printer"; break;
- case 517: result = "talk"; break;
- case 518: result = "ntalk"; break;
- case 520: result = "route"; break;
- case 525: result = "timed"; break;
- case 526: result = "tempo"; break;
- case 530: result = "courier"; break;
- case 531: result = "conference"; break;
- case 532: result = "netnews"; break;
- case 533: result = "netwall"; break;
- case 538: result = "gdomap"; break;
- case 540: result = "uucp"; break;
- case 541: result = "rdist"; break;
- case 543: result = "klogin"; break;
- case 544: result = "kshell"; break;
- case 545: result = "appleqtcsrvr";break;
- case 548: result = "afpovertcp"; break;
- case 549: result = "kerberos-adm";break;
- case 550: result = "new-rwho"; break;
- case 556: result = "remotefs"; break;
- case 560: result = "rmonitor"; break;
- case 561: result = "monitor"; break;
- case 563: result = "nntps"; break;
- case 600: result = "pcserver"; break;
- case 610: result = "npmp-local"; break;
- case 611: result = "npmp-gui"; break;
- case 612: result = "hmmp-ind"; break;
- case 635: result = "mount"; break;
- case 636: result = "ldaps"; break;
- case 640: result = "pcnfs"; break;
- case 650: result = "bwnfs"; break;
- case 660: result = "mac-srvr-admin"; break;
- case 687: result = "asipregistry";break;
- case 749: result = "kerberos-adm";break;
- case 750: result = "kerberos-iv"; break;
- case 751: result = "kerberos-master"; break;
- case 754: result = "krb5-prop"; break;
- case 760: result = "krbupdate"; break;
- case 761: result = "kpasswd"; break;
- case 765: result = "webster"; break;
- case 871: result = "supfilesrv"; break;
- case 901: result = "swat"; break; // Sabma Web Admin Tool
- case 989: result = "ftps-data"; break;
- case 990: result = "ftps"; break;
- case 992: result = "telnets"; break;
- case 993: result = "imaps"; break;
- case 994: result = "ircs"; break;
- case 995: result = "pop3s"; break;
- case 1025: result = "listen"; break;
- case 1026: result = "nterm"; break;
- case 1080: result = "socks"; break;
- case 1085: result = "webobjects"; break;
- case 1109: result = "kpop"; break;
- case 1127: result = "supfiledbg"; break;
- case 1236: result = "rmtcfg"; break;
- case 1313: result = "xtel"; break;
- case 1381: result = "apple-licman";break;
- case 1419: result = "timbuktu-srv3";break;
- case 1420: result = "chat"; break;
- case 1524: result = "ingreslock"; break;
- case 1525: result = "prospero-np"; break;
- case 1529: result = "support"; break;
- case 1600: result = "tnet"; break;
- case 1645: result = "radius"; break;
- case 1646: result = "radacct"; break;
- case 1812: result = "radius"; break;
- case 1813: result = "radacct"; break;
- case 2003: result = "cfinger"; break;
- case 2049: result = "nfs"; break;
- case 2053: result = "knetd"; break;
- case 2102: result = "zephyr-srv"; break;
- case 2103: result = "zephyr-clt"; break;
- case 2104: result = "zephyr-hm"; break;
- case 2105: result = "eklogin"; break;
- case 2150: result = "ninstall"; break;
- case 2401: result = "cvspserver"; break;
- case 2430: result = "venus"; break;
- case 2431: result = "venus-se"; break;
- case 2432: result = "codasrv"; break;
- case 2433: result = "codasrv-se"; break;
- case 2988: result = "afbackup"; break;
- case 3130: result = "icp"; break;
- case 3283: result = "net-assistant";break;
- case 3306: result = "mysql"; break;
- case 3762: result = "combadge"; break;
- case 3276: result = "combadge"; break;
- case 4321: result = "fibs"; break;
- case 4444: result = "krb524"; break;
- case 4557: result = "fax"; break;
- case 4559: result = "hylafax"; break;
- case 5000: result = "chess"; break;
- case 5002: result = "rfe"; break;
- case 5190: result = "aol"; break;
- case 5308: result = "cfengine"; break;
- case 5354: result = "noclog"; break;
- case 5355: result = "hostmon"; break;
- case 5432: result = "postgres"; break;
- case 5498: result = "hotline-tracker";break;
- case 5500: result = "hotline"; break;
- case 5501: result = "hotline-data";break;
- case 6000: result = "X11"; break;
- case 6250: result = "mush"; break;
- case 6667: result = "irc"; break;
- case 6699: result = "napster-data";break;
- case 6700: result = "carracho"; break;
- case 6701: result = "carracho-data";break;
- case 6702: result = "carracho-tracker";break;
- case 7000: result = "dos/bbs"; break;
- case 7070: result = "realaudio"; break;
- case 8080: result = "webcache"; break;
- case 8081: result = "tproxy"; break;
- case 8888: result = "napster-svr"; break;
- case 9359: result = "mandelspawn"; break;
- case 10080: result = "amanda"; break;
- case 10081: result = "kamanda"; break;
- case 10082: result = "amandaidx"; break;
- case 10083: result = "amidxtape"; break;
- case 20011: result = "isdnlog"; break;
- case 20012: result = "vboxd"; break;
- case 24554: result = "binkp"; break;
- case 27374: result = "asp"; break;
- case 60177: result = "tfido"; break;
- case 60179: result = "fido"; break;
- }
-
- return result;
- }
-
- clrscr();
-
-
- auto raw_status_data = "";
- auto logFile;
- auto line;
- auto data;
- printf("------------------------------------------------------------------------------\n");
- printf("Protocol Local Port Remote IP Remote Port Status\n");
- printf("==============================================================================\n");
- //printf(" 12345 000.000.000.000 12345 TCP_IDLE\n");
-
- if (NFGetInternetStatus(TCP_STATUS, &raw_status_data) == 0)
- {
- logFile = fopen(outputFilename, "wb");
-
- if (logFile != NULL)
- {
- printf(logFile, raw_status_data);
- close(logFile);
- logFile = fopen(outputFilename, "r");
-
- if (logFile != NULL)
- {
- // printf("------------------------------------------------------------------------------\n");
- // printf("Protocol Local Port Remote IP Remote Port Status\n");
- // printf("==============================================================================\n");
- // printf(" 12345 000.000.000.000 12345 TCP_IDLE\n");
- while (line = getline(logFile), line != NULL)
- {
- data = line ~~~ TCP_STATUS_REGEXP;
- if ((data != NULL) && ((data[0] != "000.000.000.000") || (Perl.hex(data[1]) != 0)))
- printf("tcp %-17s %-16s %-17s %s\n",
- PortToEnglishStr(Perl.hex(data[1])),
- data[0],
- PortToEnglishStr(Perl.hex(data[2])),
- data[3]);
- }
- }
- close(logFile);
- }
- }
-
- // printf("------------------------------------------------------------------------------\n\n");
- printf("\n");
-
- if (NFGetInternetStatus(UDP_STATUS, &raw_status_data) == 0)
- {
- logFile = fopen(outputFilename, "wb");
-
- if (logFile != NULL)
- {
- printf(logFile, raw_status_data);
- close(logFile);
- logFile = fopen(outputFilename, "r");
-
- if (logFile != NULL)
- {
- // printf("------------------------------------------------------------------------------\n");
- // printf("Protocol Local Port Remote IP Remote Port Status\n");
- // printf("==============================================================================\n");
- // printf(" 12345 000.000.000.000 12345 TCP_IDLE\n");
-
- while (line = getline(logFile), line != NULL)
- {
- data = line ~~~ UDP_STATUS_REGEXP;
- if ((data != NULL) && ((data[3] != "000.000.000.000") || (int(data[0]) != 0)))
- printf("udp %-17s %-16s %-17s %s\n",
- PortToEnglishStr(int(data[0])),
- data[3],
- PortToEnglishStr(int(data[4])),
- data[5]);
- }
- // printf("------------------------------------------------------------------------------\n\n");
- }
- close(logFile);
- }
- }
-
- printf("------------------------------------------------------------------------------\n\n");
-
-
- //auto result = "";
-
- //NFGetInternetStatus(ARP_CACHE_REPORT, &result);
- //printf(result);
-
- //NFGetInternetStatus(IP_INTERFACE_STATUS, &result);
- //printf(result);
-
- //NFGetInternetStatus(IP_LINK_STATUS, &result);
- //printf(result);
-
- //NFGetInternetStatus(IP_ROUTE_STATUS, &result);
- //printf(result);
-
- //NFGetInternetStatus(IP_ROUTE_STATUS2, &result);
- //printf(result);
-
- //NFGetInternetStatus(TCP_STATUS, &result);
- //printf(result);
-
- //NFGetInternetStatus(UDP_STATUS, &result);
- //printf(result);
-
- //NFNetworkPing("ftp.cdrom.com");
- //NFNetworkTraceRoute("ftp.cdrom.com");
-